﻿using System;
using System.Collections.Generic;
using Medora.DataContract;
using Medora.Model.Institutions;
using Medora.Model.Persons;
using Medora.Services.Utils;

namespace Medora.Services.Institutions
{
    public class ScheduleActivityService : ServiceBase<ScheduleActivity, PersonConnectedFilter>
    {
        public ScheduleActivityService(IUow uow, IUserService userService, IFilterConstructor<PersonConnectedFilter, ScheduleActivity> filterConstructor) : base(uow, userService, filterConstructor)
        {
            _repository = _uow.ScheduleActivities;
        }
    }

    public interface IScheduleItemsService : IService<ScheduleItem, ScheduleItemFilter>
    {
        void SaveScheduleItemsNew(List<ScheduleItem> items);
        void ClearActivity(Guid id, Guid userId, string deletedReason = null);
        void WriteActivity(Guid id, Guid personId, Guid userId, string comments=null, string deletedReason=null, Guid? referralId =null);
        IEnumerable<ScheduleItem> GetWithProvider(ScheduleItemFilter filter);
    }
}